<?
include_once("_common.php");
include_once("$g4[path]/lib/etc.lib.php");

//
// 이 페이지는 링크창 + 웹전송 방식의 note_url 샘플입니다.
//
//============================================================================================================
// 주의1 : 이 페이지를 ret_url에 지정하시면 안됩니다. ret_url과 note_url로 돌려드리는 결과값은 차이가 있습니다.
//            본 페이지는 반드시 note_url 에만 지정하셔야 합니다. (* ret_url 은 메뉴얼을 참고로 별도 제작하셔야 합니다)
//
// 주의2 : note_url 페이지의 경우 hashdata 검증이 필수 입니다. 따라서 상점관리자에서 확인된 mertkey값을 아래 
//           샘플내용에 꼭 지정해 주셔야 합니다.
//
// 주의3 : note_url은 LG데이콤 결제서버가 호출하는 페이지로 OK 출력이외의 메시지가 수신될 경우 결과전송에 문제가
//           발생하게 됩니다. html 태그나 자바스크립트 코드를 사용하는 경우 동작을 보장할 수 없습니다.
//
// 주의4 : 정상적으로 data를 처리한 경우에도 LG데이콤에서 OK 응답을 받지 못한 경우는 결제결과가 중복해서 나갈 수 
//           있으므로 관련한 처리도 고려되어야 합니다
//
// 주의5 : 결제에 대한 결과 처리는 각각의 경우에 따라 write_success(),write_failure(),write_hasherr()에서 관련 루틴을
//           추가 하시면 됩니다.
//
// 주의6 : note_url 페이지가 호출이 안되는 경우 상점관리자 페이지(test/service)에서 계약정보 -> 상점정보관리 -> 
//			시스템연동정보에 웹전송 셋팅이 되어 있는지 확인바랍니다.
//============================================================================================================
//
// [ note_url 페이지가 문제가 있는 경우 ]
//
// 상점관리자 페이지-> 결제내역조회 -> 전체거래내역조회 -> 전송실패내역조회 에서 note_url이 LG데이콤으로 응답한 
// 내용을 확인 하실수 있습니다.
// 
// - 서비스 상점관리자 URL : http://pgweb.dacom.net
// - 테스트 상점관리자 URL : http://pgweb.dacom.net/tmert
//

$log_path = "$g4[path]/data/log";
@mkdir($log_path, 0707);
@chmod($log_path, 0707);


function write_success($noti){
    //결제에 관한 log남기게 됩니다. log path수정 및 db처리루틴이 추가하여 주십시요.	
    global $log_path;
    write_log("$log_path/cd_s_".date("Ymd"), $noti);
    return true;
}

function write_failure($noti){
    //결제에 관한 log남기게 됩니다. log path수정 및 db처리루틴이 추가하여 주십시요.	
    global $log_path;
    write_log("$log_path/cd_f_".date("Ymd"), $noti);
    return true;
}

function write_hasherr($noti) {
    //결제에 관한 log남기게 됩니다. log path수정 및 db처리루틴이 추가하여 주십시요.	
    global $log_path;
    write_log("$log_path/cd_h_".date("Ymd"), $noti);
    return true;
}

/*function get_param($name){
    global $HTTP_POST_VARS, $HTTP_GET_VARS;
    if (!isset($HTTP_POST_VARS[$name]) || $HTTP_POST_VARS[$name] == "") {
	if (!isset($HTTP_GET_VARS[$name]) || $HTTP_GET_VARS[$name] == "") {
	    return false;
	} else {
	    return $HTTP_GET_VARS[$name];
	}
    }
    return $HTTP_POST_VARS[$name];
}*/
function get_param($name){
    global $_POST, $_GET;
    if (!isset($_POST[$name]) || $_POST[$name] == "") {
        if (!isset($_GET[$name]) || $_GET[$name] == "") {
            return false;
        } else {
            return $_GET[$name];
        }   
    }   
    return $_POST[$name];
}

// 데이콤에서 받은 value
$respcode="";       // 응답코드: 0000(성공) 그외 실패
$respmsg="";        // 응답메세지
$hashdata="";       // 해쉬값
$transaction="";    // 데이콤이 부여한 거래번호
$mid="";            // 상점아이디 
$oid="";            // 주문번호
$amount="";         // 거래금액
$currency="";       // 통화코드('410':원화, '840':달러)
$paytype="";        // 결제수단코드
$msgtype="";        // 거래종류에 따른 데이콤이 정의한 코드
$paydate="";        // 거래일시(승인일시/이체일시)
$buyer="";          // 구매자명
$productinfo="";    // 상품정보
$buyerssn="";       // 구매자주민등록번호
$buyerid="";        // 구매자ID
$buyeraddress="";   // 구매자주소
$buyerphone="";     // 구매자전화번호
$buyeremail="";     // 구매자이메일주소
$receiver="";       // 수취인명
$receiverphone="";  // 수취인전화번호
$deliveryinfo="";   // 배송정보
$producttype="";    // 상품유형
$productcode="";    // 상품코드
$financecode="";    // 결제기관코드(카드종류/은행코드)
$financename="";    // 결제기관이름(카드이름/은행이름)

$authnumber="";     // 승인번호(신용카드)
$cardnumber="";     // 카드번호(신용카드)
$cardexp="";        // 유효기간(신용카드)
$cardperiod="";     // 할부개월수(신용카드)	
$nointerestflag=""; //무이자할부여부(신용카드) - '1'이면 무이자할부 '0'이면 일반할부
$transamount="";    // 환율적용금액(신용카드)
$exchangerate="";   // 환율(신용카드)

$pid="";            // 예금주/휴대폰소지자 주민등록번호(계좌이체/휴대폰) 
$accountowner="";   // 계좌소유주이름(계좌이체) 
$accountnumber="";  // 계좌번호(계좌이체, 무통장입금) 

$telno="";          // 휴대폰번호(휴대폰)

$payer="";           // 입금인(무통장입금)
$cflag="";           // 무통장입금 플래그(무통장입금) - 'R':계좌할당, 'I':입금, 'C':입금취소
$tamount="";         // 입금총액(무통장입금)
$camount="";         // 현입금액(무통장입금)
$bankdate="";        // 입금또는취소일시(무통장입금)
$seqno="";			 // 입금순서(무통장입금)
$receiptnumber="";	 // 현금영수증 승인번호


$resp = false;      //결과연동 성공여부

$respcode = get_param("respcode");
$respmsg = get_param("respmsg");
$hashdata = get_param("hashdata");
$transaction = get_param("transaction");
$mid = get_param("mid");
$oid = get_param("oid");
$amount = get_param("amount");
$currency = get_param("currency");
$paytype = get_param("paytype");
$msgtype = get_param("msgtype");
$paydate = get_param("paydate");
$buyer = get_param("buyer");
$productinfo = get_param("productinfo");
$buyerssn = get_param("buyerssn");
$buyerid = get_param("buyerid");
$buyeraddress = get_param("buyeraddress");
$buyerphone = get_param("buyerphone");
$buyeremail = get_param("buyeremail");
$receiver = get_param("receiver");
$receiverphone = get_param("receiverphone");
$deliveryinfo = get_param("deliveryinfo");
$producttype = get_param("producttype");
$productcode = get_param("productcode");
$financecode = get_param("financecode");
$financename = get_param("financename");
$authnumber = get_param("authnumber");
$cardnumber = get_param("cardnumber");
$cardexp = get_param("cardexp");
$cardperiod = get_param("cardperiod");
$nointerestflag = get_param("nointerestflag");
$transamount = get_param("transamount");
$exchangerate = get_param("exchangerate");
$pid = get_param("pid");
$accountnumber = get_param("accountnumber");
$accountowner = get_param("accountowner");
$telno = get_param("telno");
$payer = get_param("payer");
$cflag = get_param("cflag");
$tamount = get_param("tamount");
$camount = get_param("camount");
$bankdate = get_param("bankdate");
$seqno= get_param("seqno");
$receiptnumber= get_param("receiptnumber");
$receiptkind= get_param("receiptkind");
$receiptself= get_param("receiptself");
$useescrow= get_param("useescrow");
$hashdata2= get_param("hashdata2");

$hashdata3 = md5($transaction.$mid.$oid.$paydate.$respcode.$amount.$mw_cash[cf_lg_mertkey]); 

$value = array( "msgtype"  	=> $msgtype,
		"transaction" 	=> $transaction,      
		"mid"    	=> $mid,     
		"oid"     	=> $oid,  
		"amount"     	=> $amount,  
		"currency" 	=> $currency,
		"paytype"  	=> $paytype,
		"paydate"  	=> $paydate,
		"buyer"   	=> $buyer,  
		"productinfo"  	=> $productinfo,  
		"respcode" 	=> $respcode,
		"respmsg"  	=> $respmsg,  
		"buyerssn"     	=> $buyerssn,  
		"buyerid"     	=> $buyerid,  
		"buyeraddress"  => $buyeraddress,  
		"buyerphone"    => $buyerphone,  
		"buyeremail"    => $buyeremail,  
		"receiver"     	=> $receiver,  
		"receiverphone" => $receiverphone,  
		"deliveryinfo"  => $deliveryinfo,  
		"producttype"  	=> $producttype,  
		"productcode"  	=> $productcode,  
		"financecode"  	=> $financecode,  
		"financename"  	=> $financename,  
		"authnumber"   	=> $authnumber,  
		"cardnumber"   	=> $cardnumber,  
		"cardexp"     	=> $cardexp,  
		"cardperiod"   	=> $cardperiod,  
		"nointerestflag"=> $nointerestflag,  
		"transamount"  	=> $transamount,  
		"exchangerate" 	=> $exchangerate,  
		"pid"     	=> $pid,  
		"accountnumber"	=> $accountnumber,  
		"accountowner" 	=> $accountowner,  
		"telno" 	=> $telno,  
		"payer" 	=> $payer,  
		"cflag" 	=> $cflag,  
		"tamount" 	=> $tamount,  
		"camount" 	=> $camount,                 
		"bankdate" 	=> $bankdate,  
		"hashdata"    	=> $hashdata,
		"hashdata2"  	=> $hashdata2,
		"seqno"	  	=> $seqno,
		"receiptnumber"	=> $receiptnumber,
		"receiptkind"	=> $receiptkind,
		"receiptself"	=> $receiptself,
		"useescrow"	=> $useescrow,
		"hashdata2"	=> $hashdata2 );


if (strtolower(str_replace("-", "", $g4[charset])) == 'utf8') {
    foreach ($value as $key => $val) {
        $value[$key] = set_utf8($val);
    }
}

if ($hashdata3 == $hashdata2) { //해쉬값 검증이 성공하면

    if ($respcode == "0000") { //결제가 성공이면

	$resp = write_success($value);

	$cl_id = substr($oid, 1, strlen($oid));

	$sql = "select * from $mw_cash[cash_list_table] where cl_id = '$cl_id'";
	$row = sql_fetch($sql);
        if (!$row[cl_status]) {
            $mb = get_member($row[mb_id], "mb_nick");
            mw_cash_pg_complete($row[mb_id], $cl_id, $value); // 캐쉬충전
            mw_cash_sms($cl_id); // 문자 통보
        }
    } else { //결제가 실패이면
	$resp = write_failure($value);
    }
} else { //해쉬값 검증이 실패이면
    write_hasherr($value);
}

if ($resp) { //결과연동이 성공이면
    echo "OK";
} else { //결과연동이 실패이면
    echo "FAIL";
}
